Seminario introduttivo su:
“Principi, tecniche e strumenti per l’analisi riproducibile dei dati”

Presidenza del Consiglio dei Ministri,
Dip. Politiche di Coesione, UdM PNRR


 

Luisa M. Mimmi

October 18, 2024

Temi del Seminario

  1. Cosa s’intende per “riproducibilità”?
  2. Perché condurre analisi con approccio riproducibile?
  3. Buone pratiche da seguire (e/o errori comuni)
    • organizzazione dei dati
    • strumenti di analisi (cenni)
  4. Conclusioni e considerazioni

Cos’è la “riproducibilità”?

  • RIPRODUCIBILE: STESSO risultato dalla STESSA analisi sugli STESSI dati
  • REPLICABILE: STESSO risultato dalla STESSA analisi su DATI DIVERSI

Quando adottare tale approccio?

Perché adottare un’approccio riproducibile?

Chi ne beneficia?

  1. IO, soprattutto nel futuro
  2. Colleghi/ co-autori
  3. La comunità scientifica:
    • potrà studiare/ replicare/ estendere…
  4. Editori e peer-reviewers
  5. Revisori/ Controllori
  6. Media/ Divulgatori

… se la mia analisi diventa:

  1. RI-UTILIZZABILE
  2. COLLABORATIVA
  3. TRASPARENTE / CITABILE
  4. DIMOSTRABILE
  5. CREDIBILE
  6. ACCESSIBILE

Buone PRATICHE da seguire (e/o errori classici da evitare)

Organizzazione file

  • cartella DATI_INPUT in modalità “read only”
  • struttura in sequenza logica (“01_caricamento”, “02_pulizia”)
  • nomi “machine readable”:
    • (“Pessim@    .Nom€ X FILE. 17 LuGlIo 2023.pdf”)
    • brevi, senza troppi spazi o simboli (SOLO 1 “.”)
    • numerati con “left-padding” (“01_”, “02_”, “03_”, … “10_”)
    • convenzioni x estrarre informazioni (…_fig_…, …_tab_…, case_…)

Contenuto di un file (da incubo😱)

  • informazioni nascoste nella struttura

    • info colore o sfondo
    • righe/celle raggruppate o nascoste
    • colonne con mix dati, formule, o commenti
    • righe vuote
  • format specifici x localizzazione:

    • 🇺🇸 12-31-2023 o 🇮🇹 31-12-2023?
    • 🇺🇸 $ 100,000.5 o 🇮🇹 € 100.000,5?
    • ecc
  • cella vuota usata come “0” (e non “NULL”)

  • valori nulli problematici (-999, -1, 0)

  • link o formule NON esportabili

Come strutturare i dati

“Tidy datasets are all alike, but every messy dataset is messy in its own way.”

~ Hadley Wickham

Come strutturare i dati (principi)

  1. Ogni entità (tipo osservazioni) occupa una tabella separata
  2. Tabella “tidy”“RETTANGOLARE”
    • ogni colonna una singola variabile
    • ogni riga una singola osservazione
    • ogni cella un valore
  3. Ogni tabella ha una chiave primaria UNIVOCA x identificare le osservazioni
  4. Ogni tabella contiene chiavi esterne per costruire relazioni tra tabelle
Tab 1 Progetti
cup misura titolo_l
H92B22005410006 IS LAVORI DI COMPLETAMENTO DELLE INFRASTRUTTURE PER SERVIZI DI ASSISTENZA DOMICILIARE AGLI ANZIANI
J78C22000070006 BC Riqualificazione e rifunzionalizzazione degli uffici dellopificio industriale exresit, e trasformazione degli stessi in sede istituzionale e spazi di incontro socio culturale.
E34C22001610004 PE MERAKI
Tab 2 Provincie
regione provincia cup
CAMPANIA Avellino E34C22001610004
CAMPANIA Avellino H92B22005410006
CAMPANIA Caserta J78C22000070006

Importanza dei metadati

DATI

METADATI

  • Data: 9 luglio 2023
  • Luogo: Monviso
  • Risoluzione: 4032x3024
  • Dimensione file: 3,5 MB
  • Formato file: .jpeg

“Data Codebook” (Codice dei dati)

E.g. PROCEDURE DI ATTIVAZIONE (Fonte: PUC)

CONTIENE

  • Nome delle variabili: […]
  • Tipo: [Numero, testo, data, …]
  • Formato: […]
  • Range di valori: [Vedi Tabella ZPTIPO_PRATT]

Altre tecniche per analisi riproducibile (cenni)

  1. Modificare i file di dati tramite “script” (codici) —invece che a mano
    • R, Python, Stata, Excel macro
  2. Automatizzare operazioni ripetute
    • “DRY” (Don’t Repeat Yourself!)
    • Organizzare procedure in funzioni dedicate (x pulire i dati, creare grafici…)
  3. Adottare controllo di versione per i file
    • Git, Github, OSF
  4. Utilizzare software open source (ove possibile)
  5. Usare e creare open data (ove possibile)

Automatizzazione (esempio)

PROBLEMA: Riga sfalsata esportando da REGIS

SOLUZIONE: Funzione in R per correggere file esportati

f_fix_1row_meas <- function(old_df_name, new_df_name){
   temp_1 <- old_df_name %>% 
     dplyr::select(1:matches("Measures")) %>% 
     janitor::row_to_names(1)
   temp_2 <- old_df_name %>% 
     dplyr::select(-(1:matches("Measures"))) %>% 
     dplyr::slice(-1)
  new_df_name <- dplyr::bind_cols(temp_1, temp_2)
}

Controllo di versione

  • Pratica mutuata dal mondo software, ma sempre più utilizzata
  • Vari strumenti per il controllo di versione di file

Conclusioni

SPUNTI OFFERTI

  • RIPRODUCIBILITÀ ≈ Tenere traccia (ordinata) di tutte le componenti di un progetto di analisi:

    • dati (grezzi e lavorati), metadati
    • procedure
    • risultati
  • È un lavoro, ma premia in caso di collaborazione/ aggiornamento analisi/ auditing

  • Si può iniziare a implementare queste pratiche un po’ alla volta, e a partire dagli strumenti in dotazione

DA APPROFONDIRE…

  • Rapporto tra ricerca “riproducibile” & “aperta”?
    • data ownership
    • privacy (dati sensibili)
    • rischio reputazionale
  • Rapporto tra analisi riproducibile e divulgazione risultati
    • visualizzazione dei dati, ecc.
  • Riproducibilita non e’ solo literate programming… importanza di strumenti per workflow management (make, targets etc)
  • Scelta di strumenti (software e piattaforme) idonei

Riferimenti bibliografici

ANNEXES

Il dataset ideale

WE SHOULD SEEK DATA THAT IS:

1.MACHINE-READABLE Data that can be read and correctly processed by a machine, like your computer.

  • (a screenshot of that spreadsheet will look identical to the original spreadsheet, but it is not a machine-readable data format)
  1. REUSABLE Data that you can use, remix, visualize, and publish without getting into legal trouble.

    • license
  2. DOCUMENTED Data that contains metadata and information about how it came to be.

    • metadata & information
    • the methodology used for the data collection
    • the data dictionary (names of the variables/column names and what they stand for, and their data type)
    • possible gaps, limitations, and NULL values;
    • why the data was collected;
    • on external sources of data used, if any;
    • on the standards and conventions used

REUSABLE: license

SPECIFICATIONS TO A CREATIVE COMMONS CC LICENSE

  • CC0: the author waivers his rights on the work, making it free to use just like public domain works.
  • -BY: you can share and adapt the work as long as you give appropriate credit to the author. (see the link to make sure you + u nderstand what this means)
  • -SA: you can share and adapt the work as long as you share the work you derive from it with the same license.●-ND: you can + s hare the work in any medium and for any purpose but can’t create derivative works.
  • -NC: you can share and adapt the work as long as you don’t do it for commercial purposes

OTHER

  • Open Data Commons Licences
  • or country-specific licenses for releasing open data (like IODL, Italian Open Data Licence).

DOCUMENTED: exe Zotero

….